package dataview;

public class InfoMenu {
	private Data quando;
	private String presentazione;
	private String note;
	private int numeroPersone;
	private Difficolta difficolta;
	
	public InfoMenu(Data quando, String presentazione, String note, int numeroPersone, Difficolta difficolta) {
		if (numeroPersone < 1) throw new IllegalArgumentException("Il numero delle persone deve essere maggiore di zero");
		this.quando = quando;
		this.presentazione = presentazione;
		this.note = note;
		this.numeroPersone = numeroPersone;
		this.difficolta = difficolta;
	}
	
	public Data getQuando() {
		return quando;
	}
	
	public String getPresentazione() {
		return presentazione;
	}
	
	public String getNote() {
		return note;
	}
	
	public int getNumeroPersone() {
		return numeroPersone;
	}
	
	public Difficolta getDifficolta() {
		return difficolta;
	}
	
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((difficolta == null) ? 0 : difficolta.hashCode());
		result = prime * result + ((note == null) ? 0 : note.hashCode());
		result = prime * result + numeroPersone;
		result = prime * result + ((presentazione == null) ? 0 : presentazione.hashCode());
		result = prime * result + ((quando == null) ? 0 : quando.hashCode());
		return result;
	}
	
	@Override
	public boolean equals(Object obj) {
		if (this == obj) return true;
		if (obj == null) return false;
		if (getClass() != obj.getClass()) return false;
		InfoMenu other = (InfoMenu)obj;
		if (difficolta == null) {
			if (other.difficolta != null) return false;
		} else if (!difficolta.equals(other.difficolta)) return false;
		if (note == null) {
			if (other.note != null) return false;
		} else if (!note.equals(other.note)) return false;
		if (numeroPersone != other.numeroPersone) return false;
		if (presentazione == null) {
			if (other.presentazione != null) return false;
		} else if (!presentazione.equals(other.presentazione)) return false;
		if (quando == null) {
			if (other.quando != null) return false;
		} else if (!quando.equals(other.quando))  {System.err.println("date diverse");return false ;}
		return true;
	}
}
